#!/usr/bin/python3
# -*- coding: utf-8 -*-
'''
@File    :  config.py
@Time    :  2022/05/10 09:25:03
@Author  :  HHLiang
@Contact :  sternapeg@qq.com
@Version :  1.0
@Desc    :  当前作用
'''

from configparser import ConfigParser

import yaml


def getYamlconfig(product, divice_name, datastream_num):
    """
    该函数用于读取配置文件并返回APIKEY、device_id、datastream_id

    :param product: 产品名称
    :param divice_name: 您要从中获取数据的设备的名称
    :param datastream_num: 数据流编号，即配置文件中数据流的编号。
    :return: APIKEY、device_id、datastream_id
    """

    f = open('config.yaml', 'r', encoding='utf-8')  # open方法打开直接读出来
    cfg = f.read()  # 读出来是字符串
    d = yaml.load(cfg, Loader=yaml.FullLoader)  # 用FullLoader可以yaml解析变得安全
    f.close()
    APIKEY = d[product]['apikey']
    device_id = d[product][divice_name]['device_id']
    device_id = str(device_id)
    datastream_id = d[product][divice_name]['datastream_id'][datastream_num]

    return(APIKEY, device_id, datastream_id)


def getCFGconfig(divice_name):
    """
    该函数读取配置文件并返回函数调用中指定设备的 APIKEY、device_id 和 datastream_id

    :param divice_name: 要读取配置文件的设备的名称。
    :return: APIKEY、device_id、datastream_id
    """
    config = ConfigParser()
    config.read("config.cfg", encoding="utf-8")  # 读取配置文件
    it_config = dict(config.items(divice_name))
    APIKEY = it_config['apikey']
    device_id = it_config['device_id']
    datastream_id = it_config['datastream_id']

    return(APIKEY, device_id, datastream_id)


def config_run():
    """
    它读取一个 yaml 文件并返回一个字典
    :return: 配置文件的字典。
    """
    product = 'LED3'  # 需要根据个人情况自行修改
    divice_name = 'SN123'  # 需要根据个人情况自行修改
    datastream_num = 0
    cfg = getYamlconfig(product, divice_name, datastream_num)  # 需要根据个人情况自行修改
    # cfg = getYamlconfig('LED3', 'SN123', 0)  # 需要根据个人情况自行修改
    # print(config)
    # cfg = getCFGconfig('SN123')
    # print(cfg)
    return cfg


if __name__ == '__main__':
    print(config_run())
